package com.hejjon.timer.test;

import java.util.Calendar;
import java.util.Date;
import java.util.Timer;
import java.util.TimerTask;

/**
 * Created by caoshi at 2:01 2021-08-14
 */
public class TimerTest1 {

    public static void test1() {
        Timer timer = new Timer();
        // 第1, 2 个任务未设置间隔时间 period, 只执行一次
        timer.schedule(new TimerTask() {
            @Override
            public void run() {
                System.out.println("执行第1个task");
            }
        }, 1000);

        timer.schedule(new TimerTask() {
            @Override
            public void run() {
                System.out.println("执行第2个task");
            }
        }, getDelayTime(2));

        // 第3和第4个task的执行顺序是不确定的,因为时间片的切换导致的微小差别
        timer.schedule(new TimerTask() {
            @Override
            public void run() {
                System.out.println("执行第3个task");
            }
        }, getDelayTime(2), 1000);

        timer.schedule(new TimerTask() {
            @Override
            public void run() {
                System.out.println("执行第4个task");
            }
        }, 1000, 1000);

    }

    /**
     *  给定一个时间(秒) 返回给定以后多少秒的 Date
     * @param howLong
     * @return
     */
    public static Date getDelayTime(int howLong) {
        Calendar c = Calendar.getInstance();
        c.set(Calendar.SECOND, howLong + c.get(Calendar.SECOND));
        return c.getTime();
    }


}
